1. Field of the Invention
The present invention relates to a color management system for transforming color data from a source CMYK (cyan, magenta, yellow and black) color space to a destination CMYK color space wherein the creation of the xe2x80x9cKxe2x80x9d channel of the source CMYK color data is performed by the same technique as that of the xe2x80x9cKxe2x80x9d channel of the destination CMYK color data.
2. Description of the Related Art
Color management systems are used for transforming color image data from the color space of an input device, such as a digital camera or scanner, to the color space of an output device, such as a printer or monitor. Generally, in color management systems such as the system of the International Color Consortium (ICC), the component colors of source color data are first transformed from a device-dependent color space for the source device into a device-independent profile connection space (PCS), such as CIELAB color space or a perceptual color space. The color data is then transformed from the PCS color space into a device-dependent color space for the destination device. For example, RGB color data from a color monitor are transformed into CIELAB color space and then are transformed from the CIELAB color space into the destination CMYK color space for a color printer.
Such color management systems generally produce desirable results and are able to match colors accurately viewed on, or acquired by, different devices. However, many times, particularly in color proofing operations, it is desirable to transform color image data from one CMYK color space to another CMYK color space, such as from the color space of one type of color printer to the color space of another type of color printer.
The xe2x80x9cKxe2x80x9d channel of the CMYK color space corresponds to an additional component added to a CMY color triad that is to be represented by black ink. There are many possible combinations of CMYK color values for any one CMY color triad, and the precise values for the CMYK color depends on how the xe2x80x9cKxe2x80x9d component is generated. For example, an ink jet printer utilizing CMYK colors can use a combination of cyan, magenta and yellow inks to create the appearance of the color black, instead of simply using black ink to create the appearance of the color black. A combination of cyan, magenta and yellow inks can be used with black ink to create a black appearance having a darker tone of black than that created by using black ink only. However, if the combination of cyan, magenta and yellow inks used to create a black appearance is not precisely determined, the resulting appearance will be brown and muddy.
In the alternative, the use of black ink only for black text and black lines results in a more consistent black appearance and also utilizes less ink to create the black appearance. Also, the use of multiple inks to print black text and/or lines can cause the text and/or lines to appear blurry or color-skewed. The use of cyan, magenta and yellow inks to create a black and/or gray color appearance requires a delicate color balance in order to avoid a non-black, brown and muddy appearance.
In general, when color data are generated for a source device, such as a first printer, the black xe2x80x9cKxe2x80x9d channel of CMYK source color data is generated by utilizing a black generation algorithm. The black generation algorithm modifies the values of the cyan, magenta and yellow components of the color data, and creates the black xe2x80x9cKxe2x80x9d channel of the CMYK color data based on the CMY values. For instance, if a pixel of color data utilizes ten percent cyan, ten percent magenta, and ten percent yellow to create a gray component of the pixel, these percentages are subtracted from the cyan, magenta and yellow components, respectively, and are replaced by a certain percentage of the xe2x80x9cKxe2x80x9d channel, such as ten percent xe2x80x9cKxe2x80x9d. Accordingly, black ink is used in place of the cyan, magenta and yellow inks to create the gray component. This method of black generation algorithm is referred to as xe2x80x9cgray component replacementxe2x80x9d (GCR). It can be appreciated that the GCR method results in the use of less color ink to represent gray/black components of color pixels because black ink is instead utilized to create the gray/black component of such pixels.
Another method of black generation algorithm is referred to as xe2x80x9cundercolor removalxe2x80x9d (UCR). The UCR method of black generation algorithm is similar to GCR, but the UCR method only removes the gray/black components from shadow colors such as dark colors and colors which are close to neutral colors. For these shadow colors, the appropriate percentage of cyan, magenta and yellow corresponding to the gray/black component is subtracted from the respective color components and is replaced by a corresponding xe2x80x9cKxe2x80x9d component.
It can therefore be appreciated that many different types of black generation algorithms can be created by using a combination of GCR and UCR, or by creating unique black generation transformations, such as transformation curves, which transform CMY color data to CMYK color data, thereby generating the xe2x80x9cKxe2x80x9d channel of the source CMYK color data. The black generation transformations can be customized to create a specific desired appearance of gray/black components of color data. Accordingly, a developer can select or create a specific black generation algorithm in order to generate an optimal visual appearance of the color data depending on the type of source device and based on the type of color data (e.g. text or image data).
When performing a color management transformation from a source CMYK color space to a destination CMYK color space, such as in a proofing operation, the representation of black and gray components of color pixels in the destination color data may be substantially different than the representation of such components in the source color data. This can occur when the transformation sequence performed by the color management system uses a different black generation algorithm to generate the xe2x80x9cKxe2x80x9d channel of the CMYK destination color data than the black generation algorithm that was originally used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK source color data.
For example, a color management system which converts CMYK source data into device-independent CIELAB color data and then into CMYK destination color data might always use the same GCR algorithm during the conversion from CIELAB color data to the CMYK destination color data. On the other hand, the CMYK source data might have been generated using an UCR algorithm, and the CMYK destination data might be generated with a GCR algorithm. Under these circumstances of a mismatch between the source color data and destination color data resulting from the different ways in which the xe2x80x9cKxe2x80x9d channel was generated, the xe2x80x9cKxe2x80x9d channel representation of the black and gray components of the color pixels in the CMYK destination color data will not match the xe2x80x9cKxe2x80x9d channel representation of the black and gray components of the color pixels in the CMYK source color data. This mismatch in representation styles of the black and gray components can cause undesirable effects in the rendering of the color data by the destination device.
For instance, black text may appear blurry if C, M and Y are used by the destination device to render black components of color pixels that were originally represented by the xe2x80x9cKxe2x80x9d channel alone in the CMYK source color data. In addition, an image that is rendered by the destination device using black ink only for black components of color pixels that were originally represented by C, M and Y in the CMYK source color data may appear lacking in contrast due to a lighter density of black that is rendered when using black ink instead of C, M and Y.
It has therefore been considered preferable to utilize the same style of black generation algorithm that was used to create the xe2x80x9cKxe2x80x9d channel of the source color data in order to create the xe2x80x9cKxe2x80x9d channel of the destination CMYK color data. The consistent use of the same style of black generation algorithm can improve consistency between the appearance of the black and gray components of the source CMYK color data and the black and gray components of the destination CMYK color data. The International Color Consortium (ICC) has defined a color management specification which currently provides a tag in the color profile format to identify a black generation algorithm. However, the ICC specification does not indicate how the tag is to be used in a color transformation sequence.
The present invention addresses the foregoing problems by providing a color management system in which the same technique used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK source color data is accessed and utilized by the color management system in order to generate the xe2x80x9cKxe2x80x9d channel of the CMYK destination color data.
Because the same technique is used to generate both source and destination xe2x80x9cKxe2x80x9d channel data, it is possible to improve consistency between the appearance of the black and gray components of the source CMYK color data and the black and gray components of the destination CMYK color data. Moreover, the aforementioned ICC tag can be used for easy implementation of the present invention with an existing, agreed upon standard.
According to one aspect, the invention transforms CMYK source color data from a source device into CMYK destination color data for rendering by a destination device, in a case which the xe2x80x9cKxe2x80x9d channel of the CMYK source color data was generated by a source black generation algorithm. A color profile is accessed which contains a copy of or reference to the source black generation algorithm, and an inverse of the source black generation algorithm is applied to the CMYK source color data to generate CMY source color data. The CMY source color data is transformed into device-independent color data, and the device-independent color data is transformed into CMY destination color data. The source black generation algorithm which was obtained by accessing the source color profile is applied to the CMY destination color data to generate the CMYK destination color data.
By virtue of this arrangement, a color management system is provided in which the same black generation algorithm that was originally used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK source data is also used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK destination data, in order to preserve consistency in the representation of the black and gray components of color pixels between the original source color data and the destination color data, thereby preventing undesired effects in the rendered destination color data.
According to another aspect, the invention transforms CMYK source color data from a source device into CMYK destination color data for rendering by a destination device, in a case which the xe2x80x9cKxe2x80x9d channel of the CMYK source color data was generated by a source black generation algorithm. A source color profile corresponding to the source device and a destination color profile corresponding to the destination device are accessed. The source color profile contains a first transform and a copy of or reference to the source black generation algorithm; the destination color profile contains a second transform. An inverse of the source black generation algorithm is applied to the CMYK source color data to generate CMY source color data, the first transform is applied to the CMY source color data to generate device-independent color data, the second transform is applied to the device-independent color data to generate CMY destination color data, and the source black generation algorithm is applied to the CMY destination color data to generate the CMYK destination color data.
By virtue of this arrangement, a color management system is provided in which the same black generation algorithm that was originally used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK source data is also used to generate the xe2x80x9cKxe2x80x9d channel of the CMYK destination data, in order to preserve consistency in the representation of the black and gray components of color pixels between the original source color data and the destination color data, thereby preventing undesired effects in the rendered destination color data. In addition, the color profile corresponding to the source device is used to efficiently transport the black generation algorithm to the color management system for use in generating the destination color data.
Preferably, the black generation algorithm is represented by a function or data table which is contained in the source device color profile, and the source black generation algorithm is one of a known set of algorithms, such as GCR, GCA and UCR, or is a custom set of CMY-CMYK conversion curves. Also, the color data management is preferably implemented in a color management program or a device driver.